package indi.caspar.algorithms.sort;

import indi.caspar.algorithms.Sorts;

import java.util.Scanner;

/**
 * 插入排序
 * Created by casparhuan on 2017/6/18.
 */
public class InsertSorts {

    public static void sort(Comparable[] a){
        //第一种
        for (int i = 1; i < a.length ; i++) {
            for (int j = i; j > 0 && SortsAlgUtil.less(a[j],a[j-1]) ; j--) {
                SortsAlgUtil.exch(a,j,j-1);
            }
        }
    }


    public static void sort2(Comparable[] a){
        //第二种
        for (int i = 1; i < a.length ; i++) {
            Comparable temp = a[i];
            int j = i;
            for (; j > 0 && SortsAlgUtil.less(temp,a[j-1]) ; j--) {
                a[j] = a[j-1];
            }
            a[j] = temp;
        }
    }

    public static void main(String[] args) {
        String[] a = {"S","O","R","T","E","X","A","M","P","L","E"};
        String[] b = {"S","O","R","T","E","X","A","M","P","L","E"};
        sort2(a);
        sort(b);
        assert SortsAlgUtil.isSorted(a);
        assert SortsAlgUtil.isSorted(b);
        SortsAlgUtil.show(a);
        SortsAlgUtil.show(b);
    }
}
